package it.csi.finregio.finreges.presentation.servlet;

import it.crp.exception.ServiceException;
import it.crp.logger.PrdLoggerFactory;
import it.csi.finregio.finreges.client.ServiceLocator;
import it.csi.finregio.finreges.dto.Classificazione;
import it.csi.finregio.finreges.dto.SottoClassificazione;
import it.csi.finregio.finreges.integration.FinregioService;
import it.csi.finregio.finreges.integration.SchedaService;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

public class LoadSottoClassificazioniByClassificazione extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3847760307959885794L;
	
	Logger log = PrdLoggerFactory.getInstance().getLogger("finreges");

	public void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		log.info("[LoadSottoClassificazioniByClassificazione::doGet] BEGIN");
		FinregioService service = new ServiceLocator().getFinRegioService();
		Classificazione classificazione = new Classificazione();
		classificazione.setIdClassificazione(request.getParameter("id"));
		String sottoclassificazione = request.getParameter("sottoclass");
		StringBuffer html = new StringBuffer("");
		try {
			Collection result = service
					.getListaSottoclassificazioniByClassificazione(classificazione);
			html.append("<option value=\"-1\" >-- seleziona --</option>");
			for (Iterator iterator = result.iterator(); iterator.hasNext();) {
				SottoClassificazione sottoClassificazione = (SottoClassificazione) iterator
						.next();
				html.append("<option value=\"").append(
						sottoClassificazione.getIdSottoClassificazione())
						.append("\" "+(sottoClassificazione.getIdSottoClassificazione().equals(sottoclassificazione)?" selected ":"")+">").append(
								sottoClassificazione.getDescrizione()).append(
								"</option>\r\n");
			}
		} catch (ServiceException e) {
			html.append("ERRORE: "+e.getMessage());
		}

		PrintWriter write = response.getWriter();
		write.print(html.toString());
		log.info("[LoadSottoClassificazioniByClassificazione::doGet] END");
	}
	
	
	public void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
